Rename message-format flag to json
authorAleksey Kladov <aleksey.kladov@gmail.com>
Sat, 1 Oct 2016 10:31:12 +0000 (13:31 +0300)
committerAleksey Kladov <aleksey.kladov@gmail.com>
Sun, 2 Oct 2016 14:28:26 +0000 (17:28 +0300)
src/bin/bench.rs
src/bin/build.rs
src/bin/doc.rs
src/bin/run.rs
src/bin/rustc.rs
src/bin/rustdoc.rs
src/bin/test.rs
src/cargo/lib.rs
src/cargo/ops/cargo_compile.rs
tests/build.rs

index 521c87c2f703eb218ff7d9f524aa9caa27e40f18..d9abefe40b80d81dd47e9f33fdb99aa4a7b2bb15 100644 (file)
@@ -1,5 +1,5 @@
 use cargo::core::Workspace;
-use cargo::ops;
+use cargo::ops::{self, MessageFormat};
 use cargo::util::{CliResult, CliError, Human, Config, human};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 
@@ -16,7 +16,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_lib: bool,
     flag_bin: Vec<String>,
     flag_example: Vec<String>,
@@ -51,7 +51,7 @@ Options:
     -v, --verbose ...            Use verbose output
     -q, --quiet                  No output printed to stdout
     --color WHEN                 Coloring: auto, always, never
-    --message-format FMT         Error format: human, json-v1
+    --message-format FMT         Error format: human, json [default: human]
     --frozen                     Require Cargo.lock and cache are up to date
     --locked                     Require Cargo.lock is up to date
 
@@ -77,9 +77,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
     let ops = ops::TestOptions {
         no_run: options.flag_no_run,
         no_fail_fast: false,
@@ -100,7 +97,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                                             &options.flag_test,
                                             &options.flag_example,
                                             &options.flag_bench),
-            message_format: message_format,
+            message_format: options.flag_message_format,
             target_rustdoc_args: None,
             target_rustc_args: None,
         },
index c4619f541e9e22545207a2da4719c6d9da978d60..0357fe080966b32a8579b6d9ad74d64151c10c87 100644 (file)
@@ -1,8 +1,7 @@
 use std::env;
 
 use cargo::core::Workspace;
-use cargo::ops::CompileOptions;
-use cargo::ops;
+use cargo::ops::{self, CompileOptions, MessageFormat};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 use cargo::util::{CliResult, Config};
 
@@ -18,7 +17,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_release: bool,
     flag_lib: bool,
     flag_bin: Vec<String>,
@@ -53,7 +52,7 @@ Options:
     -v, --verbose ...            Use verbose output
     -q, --quiet                  No output printed to stdout
     --color WHEN                 Coloring: auto, always, never
-    --message-format FMT         Error format: human, json-v1
+    --message-format FMT         Error format: human, json [default: human]
     --frozen                     Require Cargo.lock and cache are up to date
     --locked                     Require Cargo.lock is up to date
 
@@ -75,9 +74,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path, config.cwd()));
 
@@ -97,7 +93,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                                         &options.flag_test,
                                         &options.flag_example,
                                         &options.flag_bench),
-        message_format: message_format,
+        message_format: options.flag_message_format,
         target_rustdoc_args: None,
         target_rustc_args: None,
     };
index 83431ef66ff384f0c69f9405a937ab911fed8e71..c1841c20a548e6f08c31a2e91c7105d9bca8b904 100644 (file)
@@ -1,5 +1,5 @@
 use cargo::core::Workspace;
-use cargo::ops;
+use cargo::ops::{self, MessageFormat};
 use cargo::util::{CliResult, Config};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 
@@ -17,7 +17,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_package: Vec<String>,
     flag_lib: bool,
     flag_bin: Vec<String>,
@@ -48,7 +48,7 @@ Options:
     -v, --verbose ...            Use verbose output
     -q, --quiet                  No output printed to stdout
     --color WHEN                 Coloring: auto, always, never
-    --message-format FMT         Error format: human, json-v1
+    --message-format FMT         Error format: human, json [default: human]
     --frozen                     Require Cargo.lock and cache are up to date
     --locked                     Require Cargo.lock is up to date
 
@@ -67,9 +67,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path, config.cwd()));
 
@@ -90,7 +87,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                                             &empty,
                                             &empty,
                                             &empty),
-            message_format: message_format,
+            message_format: options.flag_message_format,
             release: options.flag_release,
             mode: ops::CompileMode::Doc {
                 deps: !options.flag_no_deps,
index 4b03b53bc53f48a4ca097a34b492a7690151517a..f5055b5eba04c8f1a39ab08f23e67a662739259a 100644 (file)
@@ -1,5 +1,5 @@
 use cargo::core::Workspace;
-use cargo::ops;
+use cargo::ops::{self, MessageFormat};
 use cargo::util::{CliResult, CliError, Config, Human};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 
@@ -16,7 +16,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_release: bool,
     flag_frozen: bool,
     flag_locked: bool,
@@ -43,7 +43,7 @@ Options:
     -v, --verbose ...       Use verbose output
     -q, --quiet             No output printed to stdout
     --color WHEN            Coloring: auto, always, never
-    --message-format FMT    Error format: human, json-v1
+    --message-format FMT    Error format: human, json [default: human]
     --frozen                Require Cargo.lock and cache are up to date
     --locked                Require Cargo.lock is up to date
 
@@ -63,9 +63,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path, config.cwd()));
 
@@ -96,7 +93,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                 bins: &bins, examples: &examples,
             }
         },
-        message_format: message_format,
+        message_format: options.flag_message_format,
         target_rustdoc_args: None,
         target_rustc_args: None,
     };
index 2743c3669f03fcb75f72b47eff494b45f57f59fb..fa9334f5b29c5bdeb9a1ce677cf1375aa41b7998 100644 (file)
@@ -1,8 +1,7 @@
 use std::env;
 
 use cargo::core::Workspace;
-use cargo::ops::{CompileOptions, CompileMode};
-use cargo::ops;
+use cargo::ops::{self, CompileOptions, CompileMode, MessageFormat};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 use cargo::util::{CliResult, CliError, Config, human};
 
@@ -19,7 +18,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_release: bool,
     flag_lib: bool,
     flag_bin: Vec<String>,
@@ -56,7 +55,7 @@ Options:
     -v, --verbose ...        Use verbose output
     -q, --quiet              No output printed to stdout
     --color WHEN             Coloring: auto, always, never
-    --message-format FMT     Error format: human, json-v1
+    --message-format FMT     Error format: human, json [default: human]
     --frozen                 Require Cargo.lock and cache are up to date
     --locked                 Require Cargo.lock is up to date
 
@@ -82,9 +81,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path,
                                               config.cwd()));
@@ -115,7 +111,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                                         &options.flag_test,
                                         &options.flag_example,
                                         &options.flag_bench),
-        message_format: message_format,
+        message_format: options.flag_message_format,
         target_rustdoc_args: None,
         target_rustc_args: options.arg_opts.as_ref().map(|a| &a[..]),
     };
index 79e368090b644241ffa7952c4e2981e09f392661..587046200dfd1d0a9a5e02da4a45a7d6fbf95922 100644 (file)
@@ -1,5 +1,5 @@
 use cargo::core::Workspace;
-use cargo::ops;
+use cargo::ops::{self, MessageFormat};
 use cargo::util::{CliResult, Config};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 
@@ -17,7 +17,7 @@ pub struct Options {
     flag_release: bool,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_package: Option<String>,
     flag_lib: bool,
     flag_bin: Vec<String>,
@@ -53,7 +53,7 @@ Options:
     -v, --verbose ...        Use verbose output
     -q, --quiet              No output printed to stdout
     --color WHEN             Coloring: auto, always, never
-    --message-format FMT     Error format: human, json-v1
+    --message-format FMT     Error format: human, json [default: human]
     --frozen                 Require Cargo.lock and cache are up to date
     --locked                 Require Cargo.lock is up to date
 
@@ -76,9 +76,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path,
                                               config.cwd()));
@@ -100,7 +97,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                                             &options.flag_test,
                                             &options.flag_example,
                                             &options.flag_bench),
-            message_format: message_format,
+            message_format: options.flag_message_format,
             mode: ops::CompileMode::Doc { deps: false },
             target_rustdoc_args: Some(&options.arg_opts),
             target_rustc_args: None,
index a2f1f5f129b017fbfdf0ffde661a558fbb2f5cb7..410c0a2c4d5439fc393e27bdd3c6b9d069d35a4b 100644 (file)
@@ -1,5 +1,5 @@
 use cargo::core::Workspace;
-use cargo::ops;
+use cargo::ops::{self, MessageFormat};
 use cargo::util::{CliResult, CliError, Human, human, Config};
 use cargo::util::important_paths::{find_root_manifest_for_wd};
 
@@ -23,7 +23,7 @@ pub struct Options {
     flag_verbose: u32,
     flag_quiet: Option<bool>,
     flag_color: Option<String>,
-    flag_message_format: Option<String>,
+    flag_message_format: MessageFormat,
     flag_release: bool,
     flag_no_fail_fast: bool,
     flag_frozen: bool,
@@ -56,7 +56,7 @@ Options:
     -v, --verbose ...            Use verbose output
     -q, --quiet                  No output printed to stdout
     --color WHEN                 Coloring: auto, always, never
-    --message-format FMT         Error format: human, json-v1
+    --message-format FMT         Error format: human, json [default: human]
     --no-fail-fast               Run all tests regardless of failure
     --frozen                     Require Cargo.lock and cache are up to date
     --locked                     Require Cargo.lock is up to date
@@ -94,9 +94,6 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
                           &options.flag_color,
                           options.flag_frozen,
                           options.flag_locked));
-    let message_format = try!(ops::MessageFormat::from_option(
-        &options.flag_message_format
-    ));
 
     let root = try!(find_root_manifest_for_wd(options.flag_manifest_path, config.cwd()));
 
@@ -130,7 +127,7 @@ pub fn execute(options: Options, config: &Config) -> CliResult<Option<()>> {
             release: options.flag_release,
             mode: mode,
             filter: filter,
-            message_format: message_format,
+            message_format: options.flag_message_format,
             target_rustdoc_args: None,
             target_rustc_args: None,
         },
index b96da7d660648e7e731213f4d9d7c1f83cbb81cd..d1a8f908866371f2763663e1e9fc68e0dc75c39e 100644 (file)
@@ -211,8 +211,7 @@ pub fn version() -> String {
     })
 }
 
-fn flags_from_args<T>(usage: &str, args: &[String],
-                          options_first: bool) -> CliResult<T>
+fn flags_from_args<T>(usage: &str, args: &[String], options_first: bool) -> CliResult<T>
     where T: Decodable
 {
     let docopt = Docopt::new(usage).unwrap()
index 3b88365d5f953d7d10428dd8558ec58e2344c4cd..0767e9e467aafd96f912825cebc711b8065067c1 100644 (file)
@@ -76,23 +76,12 @@ pub enum CompileMode {
     Doc { deps: bool },
 }
 
-#[derive(Clone, Copy, PartialEq, Eq)]
+#[derive(Clone, Copy, PartialEq, Eq, RustcDecodable)]
 pub enum MessageFormat {
     Human,
     Json
 }
 
-impl MessageFormat {
-    pub fn from_option(opt: &Option<String>) -> CargoResult<MessageFormat> {
-        match opt.as_ref().map(|s| s.as_ref()) {
-            None | Some("human") => Ok(MessageFormat::Human),
-            Some("json-v1") => Ok(MessageFormat::Json),
-            Some(other) => bail!("argument for --message-format must be human or json-v1, \
-                                 but found `{}`", other)
-        }
-    }
-}
-
 pub enum CompileFilter<'a> {
     Everything,
     Only {
index f30dc54f676547a93160f2d823b2e0ae6beaa1de..739a5b9c46799f177c65ebec8bded179eb9483bc 100644 (file)
@@ -2302,7 +2302,7 @@ fn compiler_json_error_format() {
         .file("bar/src/lib.rs", r#"fn dead() {}"#);
 
     assert_that(p.cargo_process("build").arg("-v")
-                    .arg("--message-format").arg("json-v1"),
+                    .arg("--message-format").arg("json"),
                 execs().with_json(r#"
     {
         "reason":"compiler-message",
@@ -2346,9 +2346,9 @@ fn wrong_message_format_option() {
     p.build();
 
     assert_that(p.cargo_process("build").arg("--message-format").arg("XML"),
-                execs().with_status(101)
-                       .with_stderr_contains("\
-[ERROR] argument for --message-format must be human or json-v1, but found `XML`"));
+                execs().with_status(1)
+                       .with_stderr_contains(
+r#"[ERROR] Could not match 'xml' with any of the allowed variants: ["Human", "Json"]"#));
 }
 
 #[test]